An analysis of climate induced natural disasters and its effects on various countries

Introduction

\(CO_2\) emissions, rising global temperature and climate-induced natural disaster rate is an oft-studied topic. In this project we would like to analyze the trends of worldwide emissions, the countries and industries that are the sources of these emissions. We will also explore the trends and distribution of natural disasters, and how these relate to worldwide emissions.

We will do this by exploring datasets which contain the yearly CO2 emissions by country and industry in the period 1995 to 2018 and the corresponding yearly counts of various natural disasters by country.

In summary, we would like to answer the following questions:

  • What trends can we observe over time in Emissions by Industry and Disasters by Type?
  • What are the sources of carbon emissions? Which sources correspond to higher emitters of CO2?
  • Is there any correlation between the countries with high emissions and high disaster rate?

Data Sources

For this purpose we would like to use the following data sets:

  1. CO₂ Emissions, Emissions Intensities, and Emissions Multipliers

Description: CO₂ emissions; CO₂ direct and indirect emissions per unit of output by industry and by country. CO₂ emissions by industry, in aggregate terms and in terms of output by industry for the period 1995 to 2022.

  1. Climate-related Disasters Frequency

Description: Trend in number of climate related natural disasters for the period 1995 to 2018.

These data sources have been obtained from https://climatedata.imf.org

Emissions and disasters trend from 1995 to 2018

First we will analyze the trend of emissions and count of climate induced disasters across the globe, divided by industry and type respectively. We plot the emissions of the 8 highest emission industries and other industries plotted in grey.

Our hypotheses that the total emissions are growing worldwide is evident from the plot below.The most noticeable feature is the overall increasing trend for most industries, indicating growth in their total emissions over time. ‘Electricity, gas, steam and A/C Supply’ has the highest value and shows the steepest line of increase from about 7000 to 12000 M tonnes of CO2.

The “Air transport” industry is second highest growing from 1300 to 4000, with other industries with notable increases, with the exception of other non-metallic mineral products, which has a decrease over this period of time.

Next we see significant fluctuations in disaster counts over the time period, with storms (green line) reaching peaks around 170-180 in certain years like 2005 and 2010. Droughts (blue line) also exhibit high peaks around 150-160 counts in years like 1997 and 2003. Extreme temperatures (yellow line) peak around 120-130 counts.

Landslides (red line) and wildfires (purple line) generally have lower counts, mostly under 50 throughout the period. Along with a high year-to-year variability, a slight overall increasing or decreasing trends can be observed for most indicators over the long term.

Proportions of emissions by Country and Industry in 2018

We will now analyze how emissions by different countries and how total emissions relate to what industries are responsible for them. For this we will choose an assortment of countries - which lie on the 25th, 50th, 75th, 90th and 95th percentiles respectively in terms of total emissions in 2018.

Plotting these metrics, we see a that the vast majority of emissions come from a few countries indicated by the the high amounts of the 95th percentile countries and comparatively low emissions of the 90th percentile countries.

Although the distribution of Industries based on the proportions chart seems random a few things can be observed:

  • Utilities like electricity, gas, steam and A/C supply is by far the largest contributor of emissions across the board
  • Basic Metal production seems to be a significant proportions of higher emission countries.
  • Countries whose economies are associated with trade and shipping like Hong Kong and Greece have a significant proportion of their emissions coming from Water Transport compared to Land transport in other countries
  • Lower emission countries seem to have upto half of their emissions coming from other sources rather than the main sources in the dataset.

How emission proportions have changed over time

We will now discuss how the the industry composition of carbon emissions for the above mentioned group of countries has shifted over time by dividing our Year time periods into intervals of 4-5 years, ranging from 1995 to 2018.

By examining the mosaic plots across the different time intervals, we can observe the following:

The overall size of the mosaic plots for China, P.R.: Mainland, and India appears to be increasing over time, indicating a rise in their total emissions. The utilities industry, represented by the red tiles, seems to have a significant contribution across most countries and time periods. The “Other” industry, represented by the light blue tiles, also has a substantial presence, suggesting that there are other sources of emissions not explicitly categorized in the given industries. For countries like the United Kingdom and Brunei Darussalam, the industry composition appears to be more stable over time, with fewer noticeable changes in the relative sizes of the tiles. In the later time periods (e.g., 2014-2018), the “Chemicals and pharmaceutical products” industry (green) and “Land Transportation” industry (turquoise) seem to have a more prominent presence, particularly in China, P.R.: Mainland and India.

Overall, this plot highlights the varying compositions and trends of industries, allowing for the identification of potential areas of focus for emission reduction strategies within specific industries or countries.

## Warning: `unite_()` was deprecated in tidyr 1.2.0.
## ℹ Please use `unite()` instead.
## ℹ The deprecated feature was likely used in the ggmosaic package.
##   Please report the issue at <https://github.com/haleyjeppson/ggmosaic>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

How does emissions rate relate to natural disasters

The following animation shows the emissions rate and count of natural disasters in a country over 1995 to 2005, with the black line denoting mean count of disasters in that year.

We can generally see that 1999 and 2008 to 2010 were years with high disaster counts. We can also see that East Asia seems to be most effected by the disasters induced by carbon emissions. USA, China and India emerge as outliers in the data having large emissions and disaster counts.

Now we will move ahead with a map based analysis to get an idea of the geographic distributions of various disasters. We will plot count of Disaster events by country over the period 1995 to 2018 faceting on various disasters.

We can discern some interesting patterns:

  1. Drought: There are large contiguous areas showing high drought risk, particularly across North Africa, the Middle East, Central Asia, and parts of North America.
  2. Extreme Temperature: High-risk regions are more dispersed but include areas like Northern Africa, the Middle East, Central Asia, southwestern North America, and parts of South America.
  3. Flood: High flood risk is prevalent across Southeast Asia, parts of South Asia, Central Africa, and some coastal regions like eastern North America.
  4. Landslide: Landslide risk appears elevated in mountainous regions like the Himalayas, Andes, and certain island arcs.
  5. Storm: Storm patterns are quite dispersed, but hotspots include the Caribbean, coastal Southeast Asia, and some mid-latitude coastal areas.
  6. Wildfire: Wildfire risk is pronounced in parts of North America, the Mediterranean, Australia, and some regions of South America and Africa.
## Warning: Some values were not matched unambiguously: Ascension Island, Azores, Barbuda, Bonaire, Canary Islands, Chagos Archipelago, Grenadines, Heard Island, Kosovo, Madeira Islands, Micronesia, Saba, Saint Martin, Siachen Glacier, Sint Eustatius, Virgin Islands

Looking at the plot for Disasters and Emissions across the world over the time period 1995 to 2018, we can see the distribution of disasters and some evidence of the prevalence of disasters in high emission areas, particularly in East and South-East Asia and Europe, although further confounders can be taken into considerations to provide further proof for this hypotheses.

## List of 97
##  $ line                      :List of 6
##   ..$ colour       : chr "black"
##   ..$ linewidth    : num 0.5
##   ..$ linetype     : num 1
##   ..$ lineend      : chr "butt"
##   ..$ arrow        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_line" "element"
##  $ rect                      :List of 5
##   ..$ fill         : chr "white"
##   ..$ colour       : chr "black"
##   ..$ linewidth    : num 0.5
##   ..$ linetype     : num 1
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ text                      :List of 11
##   ..$ family       : chr ""
##   ..$ face         : chr "plain"
##   ..$ colour       : chr "black"
##   ..$ size         : num 11
##   ..$ hjust        : num 0.5
##   ..$ vjust        : num 0.5
##   ..$ angle        : num 0
##   ..$ lineheight   : num 0.9
##   ..$ margin       : 'margin' num [1:4] 0points 0points 0points 0points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ title                     : chr "Emissions and Disasters for 1995 to 2018"
##  $ aspect.ratio              : NULL
##  $ axis.title                : NULL
##  $ axis.title.x              : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.title.x.top          :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 0
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0points 0points 2.75points 0points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.title.x.bottom       : NULL
##  $ axis.title.y              : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.title.y.left         : NULL
##  $ axis.title.y.right        :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 0
##   ..$ angle        : num -90
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0points 0points 0points 2.75points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text                 :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : chr "grey30"
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text.x               : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.text.x.top           :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 0
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0points 0points 2.2points 0points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text.x.bottom        : NULL
##  $ axis.text.y               : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.text.y.left          : NULL
##  $ axis.text.y.right         :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0points 0points 0points 2.2points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.ticks                : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.ticks.x              : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.ticks.x.top          : NULL
##  $ axis.ticks.x.bottom       : NULL
##  $ axis.ticks.y              : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.ticks.y.left         : NULL
##  $ axis.ticks.y.right        : NULL
##  $ axis.ticks.length         : 'simpleUnit' num 2.75points
##   ..- attr(*, "unit")= int 8
##  $ axis.ticks.length.x       : NULL
##  $ axis.ticks.length.x.top   : NULL
##  $ axis.ticks.length.x.bottom: NULL
##  $ axis.ticks.length.y       : NULL
##  $ axis.ticks.length.y.left  : NULL
##  $ axis.ticks.length.y.right : NULL
##  $ axis.line                 : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.line.x               : NULL
##  $ axis.line.x.top           : NULL
##  $ axis.line.x.bottom        : NULL
##  $ axis.line.y               : NULL
##  $ axis.line.y.left          : NULL
##  $ axis.line.y.right         : NULL
##  $ legend.background         : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ legend.margin             : 'margin' num [1:4] 5.5points 5.5points 5.5points 5.5points
##   ..- attr(*, "unit")= int 8
##  $ legend.spacing            : 'simpleUnit' num 11points
##   ..- attr(*, "unit")= int 8
##  $ legend.spacing.x          : NULL
##  $ legend.spacing.y          : NULL
##  $ legend.key                : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ legend.key.size           : 'simpleUnit' num 1.2lines
##   ..- attr(*, "unit")= int 3
##  $ legend.key.height         : NULL
##  $ legend.key.width          : NULL
##  $ legend.text               :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ legend.text.align         : NULL
##  $ legend.title              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ legend.title.align        : NULL
##  $ legend.position           : chr "right"
##  $ legend.direction          : NULL
##  $ legend.justification      : chr "center"
##  $ legend.box                : NULL
##  $ legend.box.just           : NULL
##  $ legend.box.margin         : 'margin' num [1:4] 0cm 0cm 0cm 0cm
##   ..- attr(*, "unit")= int 1
##  $ legend.box.background     : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ legend.box.spacing        : 'simpleUnit' num 11points
##   ..- attr(*, "unit")= int 8
##  $ panel.background          : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ panel.border              : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ panel.spacing             : 'simpleUnit' num 5.5points
##   ..- attr(*, "unit")= int 8
##  $ panel.spacing.x           : NULL
##  $ panel.spacing.y           : NULL
##  $ panel.grid                :List of 6
##   ..$ colour       : chr "grey92"
##   ..$ linewidth    : NULL
##   ..$ linetype     : NULL
##   ..$ lineend      : NULL
##   ..$ arrow        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_line" "element"
##  $ panel.grid.major          : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ panel.grid.minor          : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ panel.grid.major.x        : NULL
##  $ panel.grid.major.y        : NULL
##  $ panel.grid.minor.x        : NULL
##  $ panel.grid.minor.y        : NULL
##  $ panel.ontop               : logi FALSE
##  $ plot.background           : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ plot.title                :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 1.2
##   ..$ hjust        : num 0
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0points 0points 5.5points 0points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.title.position       : chr "panel"
##  $ plot.subtitle             :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0points 0points 5.5points 0points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.caption              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : num 1
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 5.5points 0points 0points 0points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.caption.position     : chr "panel"
##  $ plot.tag                  :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 1.2
##   ..$ hjust        : num 0.5
##   ..$ vjust        : num 0.5
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.tag.position         : chr "topleft"
##  $ plot.margin               : 'margin' num [1:4] 5.5points 5.5points 5.5points 5.5points
##   ..- attr(*, "unit")= int 8
##  $ strip.background          : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ strip.background.x        : NULL
##  $ strip.background.y        : NULL
##  $ strip.clip                : chr "inherit"
##  $ strip.placement           : chr "inside"
##  $ strip.text                :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : chr "grey10"
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 4.4points 4.4points 4.4points 4.4points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ strip.text.x              : NULL
##  $ strip.text.x.bottom       : NULL
##  $ strip.text.x.top          : NULL
##  $ strip.text.y              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : num -90
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ strip.text.y.left         :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : num 90
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ strip.text.y.right        : NULL
##  $ strip.switch.pad.grid     : 'simpleUnit' num 2.75points
##   ..- attr(*, "unit")= int 8
##  $ strip.switch.pad.wrap     : 'simpleUnit' num 2.75points
##   ..- attr(*, "unit")= int 8
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi TRUE
##  - attr(*, "validate")= logi TRUE

Conclusion

In conclusion, this analysis has explored the trends of global carbon emissions and climate-induced natural disasters over the period of 1995 to 2018. Several key findings emerge:

  • Total worldwide emissions have shown an increasing trend across most industries, with the electricity, gas, steam, and air conditioning supply sector being the largest contributor. However, there is significant variation across countries and industries in their emission patterns.
  • The frequency of climate-related natural disasters, such as storms, droughts, and extreme temperatures, has fluctuated considerably from year to year.
  • High-emission countries like China, India, and the United States have also experienced a higher frequency of natural disasters, suggesting a potential correlation between emissions and disaster occurrences. However, further analysis would be needed to establish a causal relationship and account for other confounding factors like population, GDP and industry-level production.
  • The geographic distribution of disasters reveals distinct patterns, with certain regions being more prone to specific types of disasters, such as droughts in North Africa and the Middle East, floods in Southeast Asia, and wildfires in parts of North America.
  • While the overall industry composition of emissions has remained relatively stable for some countries, others, like China and India, have seen a growing contribution from industries like chemicals and pharmaceuticals, and land transportation, reflecting their economic growth and development.

This analysis highlights the complex interplay between carbon emissions, economic activities, and climate-induced natural disasters. Addressing these challenges will require a multifaceted approach, including promoting sustainable industrial practices, transitioning to renewable energy sources, and implementing effective disaster preparedness and mitigation strategies, particularly in high-risk regions. Continued monitoring and analysis of these trends will be crucial for informing policy decisions and collective efforts to mitigate the impacts of climate change.